home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Bank smakow / BankSmakow.air / BankSmakow.swf / scripts / mx / managers / PopUpManagerImpl.as < prev    next >
Text File  |  2009-12-16  |  47KB  |  1,263 lines

  1. package mx.managers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.Graphics;
  6.    import flash.display.InteractiveObject;
  7.    import flash.display.Sprite;
  8.    import flash.display.Stage;
  9.    import flash.events.Event;
  10.    import flash.events.IEventDispatcher;
  11.    import flash.events.MouseEvent;
  12.    import flash.geom.Point;
  13.    import flash.geom.Rectangle;
  14.    import mx.automation.IAutomationObject;
  15.    import mx.core.ApplicationGlobals;
  16.    import mx.core.FlexSprite;
  17.    import mx.core.IChildList;
  18.    import mx.core.IFlexDisplayObject;
  19.    import mx.core.IFlexModule;
  20.    import mx.core.IInvalidating;
  21.    import mx.core.ISWFLoader;
  22.    import mx.core.IUIComponent;
  23.    import mx.core.UIComponent;
  24.    import mx.core.UIComponentGlobals;
  25.    import mx.core.mx_internal;
  26.    import mx.effects.Blur;
  27.    import mx.effects.Fade;
  28.    import mx.effects.IEffect;
  29.    import mx.events.EffectEvent;
  30.    import mx.events.FlexEvent;
  31.    import mx.events.FlexMouseEvent;
  32.    import mx.events.InterManagerRequest;
  33.    import mx.events.MoveEvent;
  34.    import mx.events.SWFBridgeRequest;
  35.    import mx.events.SandboxMouseEvent;
  36.    import mx.styles.IStyleClient;
  37.    import mx.utils.NameUtil;
  38.    
  39.    use namespace mx_internal;
  40.    
  41.    public class PopUpManagerImpl implements IPopUpManager
  42.    {
  43.       
  44.       private static var instance:IPopUpManager;
  45.       
  46.       mx_internal static const VERSION:String = "3.5.0.12683";
  47.        
  48.       
  49.       private var popupInfo:Array;
  50.       
  51.       mx_internal var modalWindowClass:Class;
  52.       
  53.       public function PopUpManagerImpl()
  54.       {
  55.          super();
  56.          var _loc1_:ISystemManager = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
  57.          _loc1_.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,createModalWindowRequestHandler,false,0,true);
  58.          _loc1_.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,showModalWindowRequest,false,0,true);
  59.          _loc1_.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,hideModalWindowRequest,false,0,true);
  60.       }
  61.       
  62.       private static function nonmodalMouseWheelOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  63.       {
  64.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  65.          {
  66.             if(param1 is IUIComponent)
  67.             {
  68.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  69.                {
  70.                   return;
  71.                }
  72.             }
  73.             dispatchMouseWheelOutsideEvent(param1,param2);
  74.          }
  75.       }
  76.       
  77.       private static function dispatchMouseWheelOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  78.       {
  79.          if(!param1)
  80.          {
  81.             return;
  82.          }
  83.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE);
  84.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  85.          _loc3_.localX = _loc4_.x;
  86.          _loc3_.localY = _loc4_.y;
  87.          _loc3_.buttonDown = param2.buttonDown;
  88.          _loc3_.shiftKey = param2.shiftKey;
  89.          _loc3_.altKey = param2.altKey;
  90.          _loc3_.ctrlKey = param2.ctrlKey;
  91.          _loc3_.delta = param2.delta;
  92.          _loc3_.relatedObject = InteractiveObject(param2.target);
  93.          param1.dispatchEvent(_loc3_);
  94.       }
  95.       
  96.       mx_internal static function updateModalMask(param1:ISystemManager, param2:DisplayObject, param3:IUIComponent, param4:Rectangle, param5:Sprite) : void
  97.       {
  98.          var _loc7_:Rectangle = null;
  99.          var _loc8_:Point = null;
  100.          var _loc9_:Rectangle = null;
  101.          var _loc6_:Rectangle = param2.getBounds(DisplayObject(param1));
  102.          if(param3 is ISWFLoader)
  103.          {
  104.             _loc7_ = ISWFLoader(param3).getVisibleApplicationRect();
  105.             _loc8_ = new Point(_loc7_.x,_loc7_.y);
  106.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  107.             _loc7_.x = _loc8_.x;
  108.             _loc7_.y = _loc8_.y;
  109.          }
  110.          else if(!param3)
  111.          {
  112.             _loc7_ = _loc6_.clone();
  113.          }
  114.          else
  115.          {
  116.             _loc7_ = DisplayObject(param3).getBounds(DisplayObject(param1));
  117.          }
  118.          if(param4)
  119.          {
  120.             _loc8_ = new Point(param4.x,param4.y);
  121.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  122.             _loc9_ = new Rectangle(_loc8_.x,_loc8_.y,param4.width,param4.height);
  123.             _loc7_ = _loc7_.intersection(_loc9_);
  124.          }
  125.          param5.graphics.clear();
  126.          param5.graphics.beginFill(0);
  127.          if(_loc7_.y > _loc6_.y)
  128.          {
  129.             param5.graphics.drawRect(_loc6_.x,_loc6_.y,_loc6_.width,_loc7_.y - _loc6_.y);
  130.          }
  131.          if(_loc6_.x < _loc7_.x)
  132.          {
  133.             param5.graphics.drawRect(_loc6_.x,_loc7_.y,_loc7_.x - _loc6_.x,_loc7_.height);
  134.          }
  135.          if(_loc6_.x + _loc6_.width > _loc7_.x + _loc7_.width)
  136.          {
  137.             param5.graphics.drawRect(_loc7_.x + _loc7_.width,_loc7_.y,_loc6_.x + _loc6_.width - _loc7_.x - _loc7_.width,_loc7_.height);
  138.          }
  139.          if(_loc7_.y + _loc7_.height < _loc6_.y + _loc6_.height)
  140.          {
  141.             param5.graphics.drawRect(_loc6_.x,_loc7_.y + _loc7_.height,_loc6_.width,_loc6_.y + _loc6_.height - _loc7_.y - _loc7_.height);
  142.          }
  143.          param5.graphics.endFill();
  144.       }
  145.       
  146.       private static function dispatchMouseDownOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  147.       {
  148.          if(!param1)
  149.          {
  150.             return;
  151.          }
  152.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_DOWN_OUTSIDE);
  153.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  154.          _loc3_.localX = _loc4_.x;
  155.          _loc3_.localY = _loc4_.y;
  156.          _loc3_.buttonDown = param2.buttonDown;
  157.          _loc3_.shiftKey = param2.shiftKey;
  158.          _loc3_.altKey = param2.altKey;
  159.          _loc3_.ctrlKey = param2.ctrlKey;
  160.          _loc3_.delta = param2.delta;
  161.          _loc3_.relatedObject = InteractiveObject(param2.target);
  162.          param1.dispatchEvent(_loc3_);
  163.       }
  164.       
  165.       public static function getInstance() : IPopUpManager
  166.       {
  167.          if(!instance)
  168.          {
  169.             instance = new PopUpManagerImpl();
  170.          }
  171.          return instance;
  172.       }
  173.       
  174.       private static function nonmodalMouseDownOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  175.       {
  176.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  177.          {
  178.             if(param1 is IUIComponent)
  179.             {
  180.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  181.                {
  182.                   return;
  183.                }
  184.             }
  185.             dispatchMouseDownOutsideEvent(param1,param2);
  186.          }
  187.       }
  188.       
  189.       private function showModalWindow(param1:PopUpData, param2:ISystemManager, param3:Boolean = true) : void
  190.       {
  191.          var _loc4_:IStyleClient = param1.owner as IStyleClient;
  192.          var _loc5_:Number = 0;
  193.          var _loc6_:Number = 0;
  194.          if(!isNaN(param1.modalTransparencyDuration))
  195.          {
  196.             _loc5_ = param1.modalTransparencyDuration;
  197.          }
  198.          else if(_loc4_)
  199.          {
  200.             _loc5_ = _loc4_.getStyle("modalTransparencyDuration");
  201.             param1.modalTransparencyDuration = _loc5_;
  202.          }
  203.          if(!isNaN(param1.modalTransparency))
  204.          {
  205.             _loc6_ = param1.modalTransparency;
  206.          }
  207.          else if(_loc4_)
  208.          {
  209.             _loc6_ = _loc4_.getStyle("modalTransparency");
  210.             param1.modalTransparency = _loc6_;
  211.          }
  212.          param1.modalWindow.alpha = _loc6_;
  213.          var _loc7_:Number = 0;
  214.          if(!isNaN(param1.modalTransparencyBlur))
  215.          {
  216.             _loc7_ = param1.modalTransparencyBlur;
  217.          }
  218.          else if(_loc4_)
  219.          {
  220.             _loc7_ = _loc4_.getStyle("modalTransparencyBlur");
  221.             param1.modalTransparencyBlur = _loc7_;
  222.          }
  223.          var _loc8_:Number = 16777215;
  224.          if(!isNaN(param1.modalTransparencyColor))
  225.          {
  226.             _loc8_ = param1.modalTransparencyColor;
  227.          }
  228.          else if(_loc4_)
  229.          {
  230.             _loc8_ = _loc4_.getStyle("modalTransparencyColor");
  231.             param1.modalTransparencyColor = _loc8_;
  232.          }
  233.          if(param2 is SystemManagerProxy)
  234.          {
  235.             param2 = SystemManagerProxy(param2).systemManager;
  236.          }
  237.          var _loc9_:DisplayObject = param2.getSandboxRoot();
  238.          showModalWindowInternal(param1,_loc5_,_loc6_,_loc8_,_loc7_,param2,_loc9_);
  239.          if(param3 && param2.useSWFBridge())
  240.          {
  241.             dispatchModalWindowRequest(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,param2,_loc9_,param1,true);
  242.          }
  243.       }
  244.       
  245.       private function popupShowHandler(param1:FlexEvent) : void
  246.       {
  247.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  248.          if(_loc2_)
  249.          {
  250.             showModalWindow(_loc2_,getTopLevelSystemManager(_loc2_.parent));
  251.          }
  252.       }
  253.       
  254.       public function bringToFront(param1:IFlexDisplayObject) : void
  255.       {
  256.          var _loc2_:PopUpData = null;
  257.          var _loc3_:ISystemManager = null;
  258.          var _loc4_:InterManagerRequest = null;
  259.          if(param1 && param1.parent)
  260.          {
  261.             _loc2_ = findPopupInfoByOwner(param1);
  262.             if(_loc2_)
  263.             {
  264.                _loc3_ = ISystemManager(param1.parent);
  265.                if(_loc3_ is SystemManagerProxy)
  266.                {
  267.                   _loc4_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"bringToFront",{
  268.                      "topMost":_loc2_.topMost,
  269.                      "popUp":_loc3_
  270.                   });
  271.                   _loc3_.getSandboxRoot().dispatchEvent(_loc4_);
  272.                }
  273.                else if(_loc2_.topMost)
  274.                {
  275.                   _loc3_.popUpChildren.setChildIndex(DisplayObject(param1),_loc3_.popUpChildren.numChildren - 1);
  276.                }
  277.                else
  278.                {
  279.                   _loc3_.setChildIndex(DisplayObject(param1),_loc3_.numChildren - 1);
  280.                }
  281.             }
  282.          }
  283.       }
  284.       
  285.       public function centerPopUp(param1:IFlexDisplayObject) : void
  286.       {
  287.          var _loc4_:ISystemManager = null;
  288.          var _loc5_:Number = NaN;
  289.          var _loc6_:Number = NaN;
  290.          var _loc7_:Number = NaN;
  291.          var _loc8_:Number = NaN;
  292.          var _loc9_:Number = NaN;
  293.          var _loc10_:Number = NaN;
  294.          var _loc11_:Rectangle = null;
  295.          var _loc12_:Rectangle = null;
  296.          var _loc13_:Point = null;
  297.          var _loc14_:Point = null;
  298.          var _loc15_:Boolean = false;
  299.          var _loc16_:DisplayObject = null;
  300.          var _loc17_:InterManagerRequest = null;
  301.          var _loc18_:Point = null;
  302.          if(param1 is IInvalidating)
  303.          {
  304.             IInvalidating(param1).validateNow();
  305.          }
  306.          var _loc2_:PopUpData = findPopupInfoByOwner(param1);
  307.          var _loc3_:DisplayObject = _loc2_ && _loc2_.parent && _loc2_.parent.stage ? _loc2_.parent : param1.parent;
  308.          if(_loc3_)
  309.          {
  310.             _loc4_ = _loc2_.systemManager;
  311.             _loc13_ = new Point();
  312.             _loc16_ = _loc4_.getSandboxRoot();
  313.             if(_loc4_ != _loc16_)
  314.             {
  315.                _loc17_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  316.                _loc16_.dispatchEvent(_loc17_);
  317.                _loc15_ = Boolean(_loc17_.value);
  318.             }
  319.             else
  320.             {
  321.                _loc15_ = _loc4_.isTopLevelRoot();
  322.             }
  323.             if(_loc15_)
  324.             {
  325.                _loc7_ = (_loc11_ = _loc4_.screen).width;
  326.                _loc8_ = _loc11_.height;
  327.             }
  328.             else
  329.             {
  330.                if(_loc4_ != _loc16_)
  331.                {
  332.                   _loc17_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"getVisibleApplicationRect");
  333.                   _loc16_.dispatchEvent(_loc17_);
  334.                   _loc12_ = Rectangle(_loc17_.value);
  335.                }
  336.                else
  337.                {
  338.                   _loc12_ = _loc4_.getVisibleApplicationRect();
  339.                }
  340.                _loc13_ = new Point(_loc12_.x,_loc12_.y);
  341.                _loc13_ = DisplayObject(_loc4_).globalToLocal(_loc13_);
  342.                _loc7_ = _loc12_.width;
  343.                _loc8_ = _loc12_.height;
  344.             }
  345.             if(_loc3_ is UIComponent)
  346.             {
  347.                _loc12_ = UIComponent(_loc3_).getVisibleRect();
  348.                _loc18_ = _loc3_.globalToLocal(_loc12_.topLeft);
  349.                _loc13_.x += _loc18_.x;
  350.                _loc13_.y += _loc18_.y;
  351.                _loc9_ = _loc12_.width;
  352.                _loc10_ = _loc12_.height;
  353.             }
  354.             else
  355.             {
  356.                _loc9_ = _loc3_.width;
  357.                _loc10_ = _loc3_.height;
  358.             }
  359.             _loc5_ = Math.max(0,(Math.min(_loc7_,_loc9_) - param1.width) / 2);
  360.             _loc6_ = Math.max(0,(Math.min(_loc8_,_loc10_) - param1.height) / 2);
  361.             _loc14_ = new Point(_loc13_.x,_loc13_.y);
  362.             _loc14_ = _loc3_.localToGlobal(_loc14_);
  363.             _loc14_ = param1.parent.globalToLocal(_loc14_);
  364.             param1.move(Math.round(_loc5_) + _loc14_.x,Math.round(_loc6_) + _loc14_.y);
  365.          }
  366.       }
  367.       
  368.       private function showModalWindowRequest(param1:Event) : void
  369.       {
  370.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  371.          if(param1 is SWFBridgeRequest)
  372.          {
  373.             _loc2_ = SWFBridgeRequest(param1);
  374.          }
  375.          else
  376.          {
  377.             _loc2_ = SWFBridgeRequest.marshal(param1);
  378.          }
  379.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  380.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  381.          var _loc5_:PopUpData;
  382.          (_loc5_ = findHighestRemoteModalPopupInfo()).excludeRect = Rectangle(_loc2_.data);
  383.          _loc5_.modalTransparency = _loc2_.data.transparency;
  384.          _loc5_.modalTransparencyBlur = 0;
  385.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  386.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  387.          if(_loc5_.owner || _loc5_.parent)
  388.          {
  389.             throw new Error();
  390.          }
  391.          showModalWindow(_loc5_,_loc3_);
  392.       }
  393.       
  394.       private function hideOwnerHandler(param1:FlexEvent) : void
  395.       {
  396.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  397.          if(_loc2_)
  398.          {
  399.             removeMouseOutEventListeners(_loc2_);
  400.          }
  401.       }
  402.       
  403.       private function fadeOutDestroyEffectEndHandler(param1:EffectEvent) : void
  404.       {
  405.          var _loc4_:ISystemManager = null;
  406.          effectEndHandler(param1);
  407.          var _loc2_:DisplayObject = DisplayObject(param1.effectInstance.target);
  408.          var _loc3_:DisplayObject = _loc2_.mask;
  409.          if(_loc3_)
  410.          {
  411.             _loc2_.mask = null;
  412.             _loc4_.popUpChildren.removeChild(_loc3_);
  413.          }
  414.          if(_loc2_.parent is ISystemManager)
  415.          {
  416.             if((_loc4_ = ISystemManager(_loc2_.parent)).popUpChildren.contains(_loc2_))
  417.             {
  418.                _loc4_.popUpChildren.removeChild(_loc2_);
  419.             }
  420.             else
  421.             {
  422.                _loc4_.removeChild(_loc2_);
  423.             }
  424.          }
  425.          else if(_loc2_.parent)
  426.          {
  427.             _loc2_.parent.removeChild(_loc2_);
  428.          }
  429.       }
  430.       
  431.       private function createModalWindowRequestHandler(param1:Event) : void
  432.       {
  433.          var _loc2_:SWFBridgeRequest = null;
  434.          if(param1 is SWFBridgeRequest)
  435.          {
  436.             _loc2_ = SWFBridgeRequest(param1);
  437.          }
  438.          else
  439.          {
  440.             _loc2_ = SWFBridgeRequest.marshal(param1);
  441.          }
  442.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  443.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  444.          var _loc5_:PopUpData;
  445.          (_loc5_ = new PopUpData()).isRemoteModalWindow = true;
  446.          _loc5_.systemManager = _loc3_;
  447.          _loc5_.modalTransparency = _loc2_.data.transparency;
  448.          _loc5_.modalTransparencyBlur = 0;
  449.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  450.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  451.          _loc5_.exclude = _loc3_.swfBridgeGroup.getChildBridgeProvider(_loc2_.requestor) as IUIComponent;
  452.          _loc5_.useExclude = _loc2_.data.useExclude;
  453.          _loc5_.excludeRect = Rectangle(_loc2_.data.excludeRect);
  454.          if(!popupInfo)
  455.          {
  456.             popupInfo = [];
  457.          }
  458.          popupInfo.push(_loc5_);
  459.          createModalWindow(null,_loc5_,_loc3_.popUpChildren,_loc2_.data.show,_loc3_,_loc4_);
  460.       }
  461.       
  462.       private function showOwnerHandler(param1:FlexEvent) : void
  463.       {
  464.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  465.          if(_loc2_)
  466.          {
  467.             addMouseOutEventListeners(_loc2_);
  468.          }
  469.       }
  470.       
  471.       private function addMouseOutEventListeners(param1:PopUpData) : void
  472.       {
  473.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  474.          if(param1.modalWindow)
  475.          {
  476.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  477.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  478.          }
  479.          else
  480.          {
  481.             _loc2_.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  482.             _loc2_.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  483.          }
  484.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  485.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  486.       }
  487.       
  488.       private function fadeInEffectEndHandler(param1:EffectEvent) : void
  489.       {
  490.          var _loc4_:PopUpData = null;
  491.          effectEndHandler(param1);
  492.          var _loc2_:int = popupInfo.length;
  493.          var _loc3_:int = 0;
  494.          while(_loc3_ < _loc2_)
  495.          {
  496.             if((_loc4_ = popupInfo[_loc3_]).owner && _loc4_.modalWindow == param1.effectInstance.target)
  497.             {
  498.                IUIComponent(_loc4_.owner).setVisible(true,true);
  499.                break;
  500.             }
  501.             _loc3_++;
  502.          }
  503.       }
  504.       
  505.       private function hideModalWindowRequest(param1:Event) : void
  506.       {
  507.          var _loc2_:SWFBridgeRequest = null;
  508.          if(param1 is SWFBridgeRequest)
  509.          {
  510.             _loc2_ = SWFBridgeRequest(param1);
  511.          }
  512.          else
  513.          {
  514.             _loc2_ = SWFBridgeRequest.marshal(param1);
  515.          }
  516.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  517.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  518.          var _loc5_:PopUpData;
  519.          if(!(_loc5_ = findHighestRemoteModalPopupInfo()) || _loc5_.owner || _loc5_.parent)
  520.          {
  521.             throw new Error();
  522.          }
  523.          hideModalWindow(_loc5_,_loc2_.data.remove);
  524.          if(_loc2_.data.remove)
  525.          {
  526.             popupInfo.splice(popupInfo.indexOf(_loc5_),1);
  527.             --_loc3_.numModalWindows;
  528.          }
  529.       }
  530.       
  531.       private function getTopLevelSystemManager(param1:DisplayObject) : ISystemManager
  532.       {
  533.          var _loc2_:DisplayObjectContainer = null;
  534.          var _loc3_:ISystemManager = null;
  535.          if(param1.parent is SystemManagerProxy)
  536.          {
  537.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(param1.parent).systemManager);
  538.          }
  539.          else if(param1 is IUIComponent && IUIComponent(param1).systemManager is SystemManagerProxy)
  540.          {
  541.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(IUIComponent(param1).systemManager).systemManager);
  542.          }
  543.          else
  544.          {
  545.             _loc2_ = DisplayObjectContainer(param1.root);
  546.          }
  547.          if((!_loc2_ || _loc2_ is Stage) && param1 is IUIComponent)
  548.          {
  549.             _loc2_ = DisplayObjectContainer(IUIComponent(param1).systemManager);
  550.          }
  551.          if(_loc2_ is ISystemManager)
  552.          {
  553.             _loc3_ = ISystemManager(_loc2_);
  554.             if(!_loc3_.isTopLevel())
  555.             {
  556.                _loc3_ = _loc3_.topLevelSystemManager;
  557.             }
  558.          }
  559.          return _loc3_;
  560.       }
  561.       
  562.       private function hideModalWindow(param1:PopUpData, param2:Boolean = false) : void
  563.       {
  564.          var _loc6_:Fade = null;
  565.          var _loc7_:Number = NaN;
  566.          var _loc8_:Blur = null;
  567.          var _loc9_:DisplayObject = null;
  568.          var _loc10_:SWFBridgeRequest = null;
  569.          var _loc11_:IEventDispatcher = null;
  570.          var _loc12_:IEventDispatcher = null;
  571.          var _loc13_:InterManagerRequest = null;
  572.          if(param2 && param1.exclude)
  573.          {
  574.             param1.exclude.removeEventListener(Event.RESIZE,param1.resizeHandler);
  575.             param1.exclude.removeEventListener(MoveEvent.MOVE,param1.resizeHandler);
  576.          }
  577.          var _loc3_:IStyleClient = param1.owner as IStyleClient;
  578.          var _loc4_:Number = 0;
  579.          if(_loc3_)
  580.          {
  581.             _loc4_ = _loc3_.getStyle("modalTransparencyDuration");
  582.          }
  583.          endEffects(param1);
  584.          if(_loc4_)
  585.          {
  586.             (_loc6_ = new Fade(param1.modalWindow)).alphaFrom = param1.modalWindow.alpha;
  587.             _loc6_.alphaTo = 0;
  588.             _loc6_.duration = _loc4_;
  589.             _loc6_.addEventListener(EffectEvent.EFFECT_END,!!param2 ? fadeOutDestroyEffectEndHandler : fadeOutCloseEffectEndHandler);
  590.             param1.modalWindow.visible = true;
  591.             param1.fade = _loc6_;
  592.             _loc6_.play();
  593.             if(_loc7_ = _loc3_.getStyle("modalTransparencyBlur"))
  594.             {
  595.                _loc8_ = new Blur(param1.blurTarget);
  596.                _loc8_.blurXFrom = _loc8_.blurYFrom = _loc7_;
  597.                _loc8_.blurXTo = _loc8_.blurYTo = 0;
  598.                _loc8_.duration = _loc4_;
  599.                _loc8_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  600.                param1.blur = _loc8_;
  601.                _loc8_.play();
  602.             }
  603.          }
  604.          else
  605.          {
  606.             param1.modalWindow.visible = false;
  607.          }
  608.          var _loc5_:ISystemManager;
  609.          if((_loc5_ = ISystemManager(ApplicationGlobals.application.systemManager)).useSWFBridge())
  610.          {
  611.             _loc9_ = _loc5_.getSandboxRoot();
  612.             if(!param1.isRemoteModalWindow && _loc5_ != _loc9_)
  613.             {
  614.                _loc13_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  615.                _loc9_.dispatchEvent(_loc13_);
  616.                if(Boolean(_loc13_.value))
  617.                {
  618.                   return;
  619.                }
  620.             }
  621.             _loc10_ = new SWFBridgeRequest(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,false,false,null,{
  622.                "skip":!param1.isRemoteModalWindow && _loc5_ != _loc9_,
  623.                "show":false,
  624.                "remove":param2
  625.             });
  626.             _loc11_ = _loc5_.swfBridgeGroup.parentBridge;
  627.             _loc10_.requestor = _loc11_;
  628.             _loc11_.dispatchEvent(_loc10_);
  629.          }
  630.       }
  631.       
  632.       private function popupHideHandler(param1:FlexEvent) : void
  633.       {
  634.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  635.          if(_loc2_)
  636.          {
  637.             hideModalWindow(_loc2_);
  638.          }
  639.       }
  640.       
  641.       private function showModalWindowInternal(param1:PopUpData, param2:Number, param3:Number, param4:Number, param5:Number, param6:ISystemManager, param7:DisplayObject) : void
  642.       {
  643.          var _loc8_:Fade = null;
  644.          var _loc9_:Number = NaN;
  645.          var _loc10_:Blur = null;
  646.          var _loc11_:Object = null;
  647.          var _loc12_:InterManagerRequest = null;
  648.          endEffects(param1);
  649.          if(param2)
  650.          {
  651.             (_loc8_ = new Fade(param1.modalWindow)).alphaFrom = 0;
  652.             _loc8_.alphaTo = param3;
  653.             _loc8_.duration = param2;
  654.             _loc8_.addEventListener(EffectEvent.EFFECT_END,fadeInEffectEndHandler);
  655.             param1.modalWindow.alpha = 0;
  656.             param1.modalWindow.visible = true;
  657.             param1.fade = _loc8_;
  658.             if(param1.owner)
  659.             {
  660.                IUIComponent(param1.owner).setVisible(false,true);
  661.             }
  662.             _loc8_.play();
  663.             if(_loc9_ = param5)
  664.             {
  665.                if(DisplayObject(param6).parent is Stage)
  666.                {
  667.                   param1.blurTarget = param6.document;
  668.                }
  669.                else if(param6 != param7)
  670.                {
  671.                   _loc12_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"application",_loc11_);
  672.                   param7.dispatchEvent(_loc12_);
  673.                   param1.blurTarget = _loc12_.value;
  674.                }
  675.                else
  676.                {
  677.                   param1.blurTarget = ApplicationGlobals.application;
  678.                }
  679.                _loc10_ = new Blur(param1.blurTarget);
  680.                _loc10_.blurXFrom = _loc10_.blurYFrom = 0;
  681.                _loc10_.blurXTo = _loc10_.blurYTo = _loc9_;
  682.                _loc10_.duration = param2;
  683.                _loc10_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  684.                param1.blur = _loc10_;
  685.                _loc10_.play();
  686.             }
  687.          }
  688.          else
  689.          {
  690.             if(param1.owner)
  691.             {
  692.                IUIComponent(param1.owner).setVisible(true,true);
  693.             }
  694.             param1.modalWindow.visible = true;
  695.          }
  696.       }
  697.       
  698.       private function effectEndHandler(param1:EffectEvent) : void
  699.       {
  700.          var _loc4_:PopUpData = null;
  701.          var _loc5_:IEffect = null;
  702.          var _loc2_:int = popupInfo.length;
  703.          var _loc3_:int = 0;
  704.          while(_loc3_ < _loc2_)
  705.          {
  706.             _loc4_ = popupInfo[_loc3_];
  707.             if((_loc5_ = param1.effectInstance.effect) == _loc4_.fade)
  708.             {
  709.                _loc4_.fade = null;
  710.             }
  711.             else if(_loc5_ == _loc4_.blur)
  712.             {
  713.                _loc4_.blur = null;
  714.             }
  715.             _loc3_++;
  716.          }
  717.       }
  718.       
  719.       private function createModalWindow(param1:DisplayObject, param2:PopUpData, param3:IChildList, param4:Boolean, param5:ISystemManager, param6:DisplayObject) : void
  720.       {
  721.          var _loc7_:IFlexDisplayObject = null;
  722.          var _loc10_:Sprite = null;
  723.          var _loc11_:SystemManagerProxy = null;
  724.          var _loc12_:ISystemManager = null;
  725.          var _loc8_:IStyleClient = (_loc7_ = IFlexDisplayObject(param2.owner)) as IStyleClient;
  726.          var _loc9_:Number = 0;
  727.          if(mx_internal::modalWindowClass)
  728.          {
  729.             _loc10_ = new modalWindowClass();
  730.          }
  731.          else
  732.          {
  733.             (_loc10_ = new FlexSprite()).name = "modalWindow";
  734.          }
  735.          if(!param5 && param1)
  736.          {
  737.             param5 = IUIComponent(param1).systemManager;
  738.          }
  739.          if(param5 is SystemManagerProxy)
  740.          {
  741.             _loc12_ = (_loc11_ = SystemManagerProxy(param5)).systemManager;
  742.          }
  743.          else
  744.          {
  745.             _loc12_ = param5;
  746.          }
  747.          ++_loc12_.numModalWindows;
  748.          if(_loc7_)
  749.          {
  750.             param3.addChildAt(_loc10_,param3.getChildIndex(DisplayObject(_loc7_)));
  751.          }
  752.          else
  753.          {
  754.             param3.addChild(_loc10_);
  755.          }
  756.          if(_loc7_ is IAutomationObject)
  757.          {
  758.             IAutomationObject(_loc7_).showInAutomationHierarchy = true;
  759.          }
  760.          if(!isNaN(param2.modalTransparency))
  761.          {
  762.             _loc10_.alpha = param2.modalTransparency;
  763.          }
  764.          else if(_loc8_)
  765.          {
  766.             _loc10_.alpha = _loc8_.getStyle("modalTransparency");
  767.          }
  768.          else
  769.          {
  770.             _loc10_.alpha = 0;
  771.          }
  772.          param2.modalTransparency = _loc10_.alpha;
  773.          _loc10_.tabEnabled = false;
  774.          var _loc13_:Rectangle = _loc12_.screen;
  775.          var _loc14_:Graphics = _loc10_.graphics;
  776.          var _loc15_:Number = 16777215;
  777.          if(!isNaN(param2.modalTransparencyColor))
  778.          {
  779.             _loc15_ = param2.modalTransparencyColor;
  780.          }
  781.          else if(_loc8_)
  782.          {
  783.             _loc15_ = _loc8_.getStyle("modalTransparencyColor");
  784.             param2.modalTransparencyColor = _loc15_;
  785.          }
  786.          _loc14_.clear();
  787.          _loc14_.beginFill(_loc15_,100);
  788.          _loc14_.drawRect(_loc13_.x,_loc13_.y,_loc13_.width,_loc13_.height);
  789.          _loc14_.endFill();
  790.          param2.modalWindow = _loc10_;
  791.          if(param2.exclude)
  792.          {
  793.             param2.modalMask = new Sprite();
  794.             updateModalMask(_loc12_,_loc10_,!!param2.useExclude ? param2.exclude : null,param2.excludeRect,param2.modalMask);
  795.             _loc10_.mask = param2.modalMask;
  796.             param3.addChild(param2.modalMask);
  797.             param2.exclude.addEventListener(Event.RESIZE,param2.resizeHandler);
  798.             param2.exclude.addEventListener(MoveEvent.MOVE,param2.resizeHandler);
  799.          }
  800.          param2._mouseDownOutsideHandler = dispatchMouseDownOutsideEvent;
  801.          param2._mouseWheelOutsideHandler = dispatchMouseWheelOutsideEvent;
  802.          _loc12_.addEventListener(Event.RESIZE,param2.resizeHandler);
  803.          if(_loc7_)
  804.          {
  805.             _loc7_.addEventListener(FlexEvent.SHOW,popupShowHandler);
  806.             _loc7_.addEventListener(FlexEvent.HIDE,popupHideHandler);
  807.          }
  808.          if(param4)
  809.          {
  810.             showModalWindow(param2,param5,false);
  811.          }
  812.          else
  813.          {
  814.             _loc7_.visible = param4;
  815.          }
  816.          if(_loc12_.useSWFBridge())
  817.          {
  818.             if(_loc8_)
  819.             {
  820.                param2.modalTransparencyDuration = _loc8_.getStyle("modalTransparencyDuration");
  821.                param2.modalTransparencyBlur = _loc8_.getStyle("modalTransparencyBlur");
  822.             }
  823.             dispatchModalWindowRequest(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,_loc12_,param6,param2,param4);
  824.          }
  825.       }
  826.       
  827.       private function findPopupInfoByOwner(param1:Object) : PopUpData
  828.       {
  829.          var _loc4_:PopUpData = null;
  830.          var _loc2_:int = popupInfo.length;
  831.          var _loc3_:int = 0;
  832.          while(_loc3_ < _loc2_)
  833.          {
  834.             if((_loc4_ = popupInfo[_loc3_]).owner == param1)
  835.             {
  836.                return _loc4_;
  837.             }
  838.             _loc3_++;
  839.          }
  840.          return null;
  841.       }
  842.       
  843.       private function popupRemovedHandler(param1:Event) : void
  844.       {
  845.          var _loc4_:PopUpData = null;
  846.          var _loc5_:DisplayObject = null;
  847.          var _loc6_:DisplayObject = null;
  848.          var _loc7_:DisplayObject = null;
  849.          var _loc8_:ISystemManager = null;
  850.          var _loc9_:ISystemManager = null;
  851.          var _loc10_:IEventDispatcher = null;
  852.          var _loc11_:SWFBridgeRequest = null;
  853.          var _loc2_:int = popupInfo.length;
  854.          var _loc3_:int = 0;
  855.          while(_loc3_ < _loc2_)
  856.          {
  857.             if((_loc5_ = (_loc4_ = popupInfo[_loc3_]).owner) == param1.target)
  858.             {
  859.                _loc6_ = _loc4_.parent;
  860.                _loc7_ = _loc4_.modalWindow;
  861.                if((_loc8_ = _loc4_.systemManager) is SystemManagerProxy)
  862.                {
  863.                   _loc9_ = SystemManagerProxy(_loc8_).systemManager;
  864.                }
  865.                else
  866.                {
  867.                   _loc9_ = _loc8_;
  868.                }
  869.                if(!_loc8_.isTopLevel())
  870.                {
  871.                   _loc8_ = _loc8_.topLevelSystemManager;
  872.                }
  873.                if(_loc5_ is IUIComponent)
  874.                {
  875.                   IUIComponent(_loc5_).isPopUp = false;
  876.                }
  877.                if(_loc5_ is IFocusManagerContainer)
  878.                {
  879.                   _loc8_.removeFocusManager(IFocusManagerContainer(_loc5_));
  880.                }
  881.                _loc5_.removeEventListener(Event.REMOVED,popupRemovedHandler);
  882.                if(_loc8_ is SystemManagerProxy)
  883.                {
  884.                   _loc10_ = _loc9_.swfBridgeGroup.parentBridge;
  885.                   _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,false,false,_loc10_,{
  886.                      "window":DisplayObject(_loc8_),
  887.                      "parent":_loc4_.parent,
  888.                      "modal":_loc4_.modalWindow != null
  889.                   });
  890.                   _loc9_.getSandboxRoot().dispatchEvent(_loc11_);
  891.                }
  892.                else if(_loc8_.useSWFBridge())
  893.                {
  894.                   (_loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(_loc5_)})).requestor = _loc8_.swfBridgeGroup.parentBridge;
  895.                   _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(_loc5_));
  896.                   _loc8_.dispatchEvent(_loc11_);
  897.                }
  898.                if(_loc4_.owner)
  899.                {
  900.                   _loc4_.owner.removeEventListener(FlexEvent.SHOW,showOwnerHandler);
  901.                   _loc4_.owner.removeEventListener(FlexEvent.HIDE,hideOwnerHandler);
  902.                }
  903.                removeMouseOutEventListeners(_loc4_);
  904.                if(_loc7_)
  905.                {
  906.                   _loc9_.removeEventListener(Event.RESIZE,_loc4_.resizeHandler);
  907.                   _loc5_.removeEventListener(FlexEvent.SHOW,popupShowHandler);
  908.                   _loc5_.removeEventListener(FlexEvent.HIDE,popupHideHandler);
  909.                   hideModalWindow(_loc4_,true);
  910.                   --_loc9_.numModalWindows;
  911.                }
  912.                popupInfo.splice(_loc3_,1);
  913.                break;
  914.             }
  915.             _loc3_++;
  916.          }
  917.       }
  918.       
  919.       private function fadeOutCloseEffectEndHandler(param1:EffectEvent) : void
  920.       {
  921.          effectEndHandler(param1);
  922.          DisplayObject(param1.effectInstance.target).visible = false;
  923.       }
  924.       
  925.       private function endEffects(param1:PopUpData) : void
  926.       {
  927.          if(param1.fade)
  928.          {
  929.             param1.fade.end();
  930.             param1.fade = null;
  931.          }
  932.          if(param1.blur)
  933.          {
  934.             param1.blur.end();
  935.             param1.blur = null;
  936.          }
  937.       }
  938.       
  939.       public function removePopUp(param1:IFlexDisplayObject) : void
  940.       {
  941.          var _loc2_:PopUpData = null;
  942.          var _loc3_:ISystemManager = null;
  943.          var _loc4_:IUIComponent = null;
  944.          if(param1 && param1.parent)
  945.          {
  946.             _loc2_ = findPopupInfoByOwner(param1);
  947.             if(_loc2_)
  948.             {
  949.                _loc3_ = _loc2_.systemManager;
  950.                if(!_loc3_)
  951.                {
  952.                   if(!(_loc4_ = param1 as IUIComponent))
  953.                   {
  954.                      return;
  955.                   }
  956.                   _loc3_ = ISystemManager(_loc4_.systemManager);
  957.                }
  958.                if(_loc2_.topMost)
  959.                {
  960.                   _loc3_.popUpChildren.removeChild(DisplayObject(param1));
  961.                }
  962.                else
  963.                {
  964.                   _loc3_.removeChild(DisplayObject(param1));
  965.                }
  966.             }
  967.          }
  968.       }
  969.       
  970.       public function addPopUp(param1:IFlexDisplayObject, param2:DisplayObject, param3:Boolean = false, param4:String = null) : void
  971.       {
  972.          var _loc7_:IChildList = null;
  973.          var _loc8_:* = false;
  974.          var _loc5_:Boolean = param1.visible;
  975.          if(param2 is IUIComponent && param1 is IUIComponent && IUIComponent(param1).document == null)
  976.          {
  977.             IUIComponent(param1).document = IUIComponent(param2).document;
  978.          }
  979.          if(param2 is IUIComponent && IUIComponent(param2).document is IFlexModule && param1 is UIComponent && UIComponent(param1).moduleFactory == null)
  980.          {
  981.             UIComponent(param1).moduleFactory = IFlexModule(IUIComponent(param2).document).moduleFactory;
  982.          }
  983.          var _loc6_:ISystemManager;
  984.          if(!(_loc6_ = getTopLevelSystemManager(param2)))
  985.          {
  986.             if((_loc6_ = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0])).getSandboxRoot() != param2)
  987.             {
  988.                return;
  989.             }
  990.          }
  991.          var _loc9_:ISystemManager = _loc6_;
  992.          var _loc10_:DisplayObject = _loc6_.getSandboxRoot();
  993.          var _loc11_:SWFBridgeRequest = null;
  994.          if(_loc6_.useSWFBridge())
  995.          {
  996.             if(_loc10_ != _loc6_)
  997.             {
  998.                _loc9_ = new SystemManagerProxy(_loc6_);
  999.                _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_REQUEST,false,false,_loc6_.swfBridgeGroup.parentBridge,{
  1000.                   "window":DisplayObject(_loc9_),
  1001.                   "parent":param2,
  1002.                   "modal":param3,
  1003.                   "childList":param4
  1004.                });
  1005.                _loc10_.dispatchEvent(_loc11_);
  1006.             }
  1007.             else
  1008.             {
  1009.                _loc9_ = _loc6_;
  1010.             }
  1011.          }
  1012.          if(param1 is IUIComponent)
  1013.          {
  1014.             IUIComponent(param1).isPopUp = true;
  1015.          }
  1016.          if(!param4 || param4 == PopUpManagerChildList.PARENT)
  1017.          {
  1018.             _loc8_ = Boolean(_loc9_.popUpChildren.contains(param2));
  1019.          }
  1020.          else
  1021.          {
  1022.             _loc8_ = param4 == PopUpManagerChildList.POPUP;
  1023.          }
  1024.          (_loc7_ = !!_loc8_ ? _loc9_.popUpChildren : _loc9_).addChild(DisplayObject(param1));
  1025.          param1.visible = false;
  1026.          if(!popupInfo)
  1027.          {
  1028.             popupInfo = [];
  1029.          }
  1030.          var _loc12_:PopUpData;
  1031.          (_loc12_ = new PopUpData()).owner = DisplayObject(param1);
  1032.          _loc12_.topMost = _loc8_;
  1033.          _loc12_.systemManager = _loc9_;
  1034.          popupInfo.push(_loc12_);
  1035.          if(param1 is IFocusManagerContainer)
  1036.          {
  1037.             if(IFocusManagerContainer(param1).focusManager)
  1038.             {
  1039.                _loc9_.addFocusManager(IFocusManagerContainer(param1));
  1040.             }
  1041.             else
  1042.             {
  1043.                IFocusManagerContainer(param1).focusManager = new FocusManager(IFocusManagerContainer(param1),true);
  1044.             }
  1045.          }
  1046.          if(!_loc6_.isTopLevelRoot() && _loc10_ && _loc6_ == _loc10_)
  1047.          {
  1048.             (_loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(param1)})).requestor = _loc6_.swfBridgeGroup.parentBridge;
  1049.             _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(param1));
  1050.             _loc6_.dispatchEvent(_loc11_);
  1051.          }
  1052.          if(param1 is IAutomationObject)
  1053.          {
  1054.             IAutomationObject(param1).showInAutomationHierarchy = true;
  1055.          }
  1056.          if(param1 is ILayoutManagerClient)
  1057.          {
  1058.             UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(param1),true);
  1059.          }
  1060.          _loc12_.parent = param2;
  1061.          if(param1 is IUIComponent)
  1062.          {
  1063.             IUIComponent(param1).setActualSize(IUIComponent(param1).getExplicitOrMeasuredWidth(),IUIComponent(param1).getExplicitOrMeasuredHeight());
  1064.          }
  1065.          if(param3)
  1066.          {
  1067.             createModalWindow(param2,_loc12_,_loc7_,_loc5_,_loc9_,_loc10_);
  1068.          }
  1069.          else
  1070.          {
  1071.             _loc12_._mouseDownOutsideHandler = nonmodalMouseDownOutsideHandler;
  1072.             _loc12_._mouseWheelOutsideHandler = nonmodalMouseWheelOutsideHandler;
  1073.             param1.visible = _loc5_;
  1074.          }
  1075.          _loc12_.owner.addEventListener(FlexEvent.SHOW,showOwnerHandler);
  1076.          _loc12_.owner.addEventListener(FlexEvent.HIDE,hideOwnerHandler);
  1077.          addMouseOutEventListeners(_loc12_);
  1078.          param1.addEventListener(Event.REMOVED,popupRemovedHandler);
  1079.          if(param1 is IFocusManagerContainer && _loc5_)
  1080.          {
  1081.             if(!(_loc9_ is SystemManagerProxy) && _loc9_.useSWFBridge())
  1082.             {
  1083.                SystemManager(_loc9_).dispatchActivatedWindowEvent(DisplayObject(param1));
  1084.             }
  1085.             else
  1086.             {
  1087.                _loc9_.activate(IFocusManagerContainer(param1));
  1088.             }
  1089.          }
  1090.       }
  1091.       
  1092.       private function dispatchModalWindowRequest(param1:String, param2:ISystemManager, param3:DisplayObject, param4:PopUpData, param5:Boolean) : void
  1093.       {
  1094.          var _loc8_:InterManagerRequest = null;
  1095.          if(!param4.isRemoteModalWindow && param2 != param3)
  1096.          {
  1097.             _loc8_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  1098.             param3.dispatchEvent(_loc8_);
  1099.             if(Boolean(_loc8_.value))
  1100.             {
  1101.                return;
  1102.             }
  1103.          }
  1104.          var _loc6_:SWFBridgeRequest = new SWFBridgeRequest(param1,false,false,null,{
  1105.             "skip":!param4.isRemoteModalWindow && param2 != param3,
  1106.             "useExclude":param4.useExclude,
  1107.             "show":param5,
  1108.             "remove":false,
  1109.             "transparencyDuration":param4.modalTransparencyDuration,
  1110.             "transparency":param4.modalTransparency,
  1111.             "transparencyColor":param4.modalTransparencyColor,
  1112.             "transparencyBlur":param4.modalTransparencyBlur
  1113.          });
  1114.          var _loc7_:IEventDispatcher = param2.swfBridgeGroup.parentBridge;
  1115.          _loc6_.requestor = _loc7_;
  1116.          _loc7_.dispatchEvent(_loc6_);
  1117.       }
  1118.       
  1119.       public function createPopUp(param1:DisplayObject, param2:Class, param3:Boolean = false, param4:String = null) : IFlexDisplayObject
  1120.       {
  1121.          var _loc5_:IUIComponent = new param2();
  1122.          addPopUp(_loc5_,param1,param3,param4);
  1123.          return _loc5_;
  1124.       }
  1125.       
  1126.       private function removeMouseOutEventListeners(param1:PopUpData) : void
  1127.       {
  1128.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  1129.          if(param1.modalWindow)
  1130.          {
  1131.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1132.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1133.          }
  1134.          else
  1135.          {
  1136.             _loc2_.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1137.             _loc2_.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1138.          }
  1139.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  1140.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  1141.       }
  1142.       
  1143.       private function findHighestRemoteModalPopupInfo() : PopUpData
  1144.       {
  1145.          var _loc3_:PopUpData = null;
  1146.          var _loc1_:int = popupInfo.length - 1;
  1147.          var _loc2_:int = _loc1_;
  1148.          while(_loc2_ >= 0)
  1149.          {
  1150.             _loc3_ = popupInfo[_loc2_];
  1151.             if(_loc3_.isRemoteModalWindow)
  1152.             {
  1153.                return _loc3_;
  1154.             }
  1155.             _loc2_--;
  1156.          }
  1157.          return null;
  1158.       }
  1159.    }
  1160. }
  1161.  
  1162. import flash.display.DisplayObject;
  1163. import flash.display.Sprite;
  1164. import flash.events.Event;
  1165. import flash.events.MouseEvent;
  1166. import flash.geom.Rectangle;
  1167. import mx.core.IUIComponent;
  1168. import mx.core.mx_internal;
  1169. import mx.effects.Effect;
  1170. import mx.events.SandboxMouseEvent;
  1171. import mx.managers.ISystemManager;
  1172. import mx.managers.PopUpManagerImpl;
  1173.  
  1174. use namespace mx_internal;
  1175.  
  1176. class PopUpData
  1177. {
  1178.     
  1179.    
  1180.    public var fade:Effect;
  1181.    
  1182.    public var modalTransparencyColor:Number;
  1183.    
  1184.    public var exclude:IUIComponent;
  1185.    
  1186.    public var isRemoteModalWindow:Boolean;
  1187.    
  1188.    public var useExclude:Boolean;
  1189.    
  1190.    public var blurTarget:Object;
  1191.    
  1192.    public var modalTransparencyDuration:Number;
  1193.    
  1194.    public var _mouseWheelOutsideHandler:Function;
  1195.    
  1196.    public var excludeRect:Rectangle;
  1197.    
  1198.    public var modalTransparency:Number;
  1199.    
  1200.    public var blur:Effect;
  1201.    
  1202.    public var parent:DisplayObject;
  1203.    
  1204.    public var modalTransparencyBlur:Number;
  1205.    
  1206.    public var _mouseDownOutsideHandler:Function;
  1207.    
  1208.    public var owner:DisplayObject;
  1209.    
  1210.    public var topMost:Boolean;
  1211.    
  1212.    public var modalMask:Sprite;
  1213.    
  1214.    public var modalWindow:DisplayObject;
  1215.    
  1216.    public var systemManager:ISystemManager;
  1217.    
  1218.    function PopUpData()
  1219.    {
  1220.       super();
  1221.       useExclude = true;
  1222.    }
  1223.    
  1224.    public function marshalMouseOutsideHandler(param1:Event) : void
  1225.    {
  1226.       if(!(param1 is SandboxMouseEvent))
  1227.       {
  1228.          param1 = SandboxMouseEvent.marshal(param1);
  1229.       }
  1230.       if(owner)
  1231.       {
  1232.          owner.dispatchEvent(param1);
  1233.       }
  1234.    }
  1235.    
  1236.    public function mouseDownOutsideHandler(param1:MouseEvent) : void
  1237.    {
  1238.       _mouseDownOutsideHandler(owner,param1);
  1239.    }
  1240.    
  1241.    public function mouseWheelOutsideHandler(param1:MouseEvent) : void
  1242.    {
  1243.       _mouseWheelOutsideHandler(owner,param1);
  1244.    }
  1245.    
  1246.    public function resizeHandler(param1:Event) : void
  1247.    {
  1248.       var _loc2_:Rectangle = null;
  1249.       if(owner && owner.stage == DisplayObject(param1.target).stage || modalWindow && modalWindow.stage == DisplayObject(param1.target).stage)
  1250.       {
  1251.          _loc2_ = systemManager.screen;
  1252.          modalWindow.width = _loc2_.width;
  1253.          modalWindow.height = _loc2_.height;
  1254.          modalWindow.x = _loc2_.x;
  1255.          modalWindow.y = _loc2_.y;
  1256.          if(modalMask)
  1257.          {
  1258.             PopUpManagerImpl.updateModalMask(systemManager,modalWindow,exclude,excludeRect,modalMask);
  1259.          }
  1260.       }
  1261.    }
  1262. }
  1263.